perm filename OBSDIA.SAI[DIA,HPM] blob
sn#507029 filedate 1980-05-04 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 BEGIN "OBSDIA"
C00005 ENDMK
C⊗;
BEGIN "OBSDIA"
comment diagrams for obstacle avoider chapter;
REQUIRE "TYPHDR.SAI[GOD,HPM]" SOURCE_FILE;
INTEGER FJ;
BEGIN "figure 8-1"
REAL RA,RB;
PROCEDURE ARROW(REAL X1,Y1,X2,Y2);
BEGIN
REAL DX,DY,D; REAL ARRAY HEADX,HEADY[1:3];
LINE(X1,Y1,X2,Y2,3); DX←X2-X1; DY←Y2-Y1; D←SQRT(DX↑2+DY↑2);
DX←0.2*DX/D; DY←0.2*DY/D;
HEADX[1]←X2; HEADY[1]←Y2;
HEADX[2]←X2-DX-DY/4; HEADY[2]←Y2-DY+DX/4;
HEADX[3]←X2-DX+DY/4; HEADY[3]←Y2-DY-DX/4;
POLYGO(3,HEADX[1],HEADY[1]);
END;
FJ←FILJOB("DSK:8-1.GOD[DIA,HPM]");
DDINIT; SCREEN(0,0,6,4);
FNTSELECT(1,"NONM"); comment Main text font;
FNTSELECT(2,"METMBM"); comment math font.;
FNTSELECT(3,"METSBM"); comment Small math font for sub-superscripts.;
FNTSELECT(4,"GRKL40"); comment Big greek, for use with math font.;
FNTSELECT(5,"GRKL30"); comment Medium greek, for use with math font.;
FNTSELECT(6,"BDR40"); comment Source of large bars, brackets, parens, R.;
DEFINE XA="1.8", YA="1.8", RAM="1.5", XB="4.5", YB="2.5", RBM="0.5", TH=".1";
LITEN; ELLIPS(XA-RAM,YA-RAM,XA+RAM,YA+RAM);
DRKEN; ELLIPS(XA-RAM+TH,YA-RAM+TH,XA+RAM-TH,YA+RAM-TH);
LITEN; ELLIPS(XB-RBM,YB-RBM,XB+RBM,YB+RBM);
DRKEN; ELLIPS(XB-RBM+TH,YB-RBM+TH,XB+RBM-TH,YB+RBM-TH);
LITEN;
FNTPOS(XA,YA); DEPOSIT(0,0,CENTER(JTXT(6,"A")));
FNTPOS(XB,YB); DEPOSIT(0,0,CENTER(JTXT(6,"B")));
FOR RA←RAM,-RAM DO FOR RB←RBM,-RBM DO
BEGIN
REAL DX,DY,D2,D,A,B,IX,IY,JX,JY,PAR,PER,DISTIJ;
DX←XB-XA; DY←YB-YA; D2←DX*DX+DY*DY; D←SQRT(D2); DX←DX/D; DY←DY/D;
A←(RA-RB)/D;
B←SQRT(1-A*A); DISTIJ←D*B; PAR←DX*A+DY*B; PER←DY*A-DX*B;
IX←XA+RA*PAR; IY←YA+RA*PER; JX←XB+RB*PAR; JY←YB+RB*PER;
LINE(IX,IY,JX,JY,5);
ARROW(IX,IY,(IX+JX)/2,(IY+JY)/2);
END;
DPYUP(-1);
KILJOB(FJ);
END;
END;